1. Field of the Invention
The present invention relates to an apparatus and a method for performing interpolation for obtaining a high quality image in image processing in computer graphics such as texture mapping and image scaling, and to an image generation apparatus including such an interpolation apparatus.
2. Description of the Related Art
Recently, in the field of computer graphics and game machines, texture mapping is often used for polygon rendering. By a method of texture mapping which is generally referred to as "inverse map", coordinates (u, v) of a texture pattern are found by computation from coordinates (Xs, Ys) of the screen. Then, a color corresponding to the coordinates (u, v) is obtained. While the coordinates (u, v) found by computation have a decimal part, the actual texture pattern is defined only by a definite number of points in a lattice, the coordinate (u, v) of which are integers. By making the coordinates (u, v) having decimal parts merely proximate integers, a clear image cannot be generated because of the influence of folding distortion or the like. The quality of the image depends on the method of interpolation of texture information between the points in the lattice. High quality images are obtained by interpolating texture information in texture mapping.
Interpolation in the present context is a process of finding, by calculation, the pixel value of a sample point (non integer) using the values of pixels located in the vicinity of the sample point. The "pixels located in the vicinity of the sample point" are considered pixels located in a circle which has the sampling point as the center and has a radius corresponding to one pixel. There are several methods for performing such interpolation. One such known method for generating a high quality image is, for example, a bilinear interpolation method (see George Wolberg, "Digital Image Warping" published by the IEEE Computer Society Press, 1990, pp. 147-149).
Since conventional texture patterns have a relatively large size, a method of handling pixel data in the boundary area of the texture pattern is not considered.